package com.huaxin.device.dto.request;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

@Data
public class QueryDeviceInstanceListReqDTO {
    private Integer pageNum;
    private Integer pageSize;
    /**
     * 唯一序列号
     */
    @Schema(description = "唯一序列号", requiredMode = Schema.RequiredMode.REQUIRED, example = "SN123456789")
    private String serialNumber;

    /**
     * 设备名称
     */
    @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "厨房断路器1号")
    private String deviceName;

    /**
     * 型号ID
     */
    @Schema(description = "型号ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "m123e456-789a-bcde-f012-3456789abcde")
    private String modelId;
    /**
     * 设备类型
     */
    @Schema(description = "设备类型：acquisition-采集/monitoring-监控", requiredMode = Schema.RequiredMode.REQUIRED, example = "circuit_breaker")
    private String deviceType;

    /**
     * 区域ID
     */
    @Schema(description = "区域ID", example = "z123e456-789a-bcde-f012-3456789abcde")
    private String zoneId;

    /**
     * 区域名称
     */
    @Schema(description = "区域名称", example = "厨房区域")
    private String zoneName;

    /**
     * 状态
     */
    @NotNull(message = "状态不能为空")
    @Schema(description = "状态：online-在线/offline-离线/failure-故障/deactivate-停用/scrap-报废", example = "1")
    private String status;

    /**
     * 组织家族ID
     */
    @Schema(description = "组织家族ID", example = "f3b2f8e1-4c5d-4e6f-8b2a-1c2d3e4f5a6b")
    private String familyId;
    /**
     * 组织ID
     */
    @Schema(description = "组织ID", example = "o3b2f8e1-4c5d-4e6f-8")
    private String orgId;

    /**
     * 绑定状态
     */
    /**
     * 绑定状态：0-未绑定；1-绑定了企业；2-绑定了家庭
     */
    @Schema(description = "0-未绑定；1-绑定了企业；2-绑定了家庭", example = "1")
    private Integer bindStatus;
}
